/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is Forte for Java, Community Edition. The Initial * Developer of the Original Code is Sun Microsystems, Inc. Portions * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.form; import java.lang.reflect.Method; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.openide.TopManager; import org.openide.util.HelpCtx; import org.openide.util.Utilities; /** The ConnectionWizard is a dialog which allows to enter the data for connecting two * components on a form. * * @author Ian Formanek * @version 1.00, Aug 29, 1998 */ public class ConnectionWizard3 extends javax.swing.JDialog { public static final int CANCEL = 0; public static final int NEXT = 1; public static final int PREVIOUS = 2; static final long serialVersionUID =1673915932424583702L; /** Initializes the Form */ public ConnectionWizard3 (FormManager2 manager, Method m, RADComponent sourceComponent) { super (TopManager.getDefault ().getWindowManager ().getMainWindow (), true); this.manager = manager; this.sourceComponent = sourceComponent; setDefaultCloseOperation (javax.swing.JDialog.DO_NOTHING_ON_CLOSE); addWindowListener (new java.awt.event.WindowAdapter () { public void windowClosing (java.awt.event.WindowEvent evt) { cancelDialog (); } } ); // attach cancel also to Escape key getRootPane().registerKeyboardAction( new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelDialog (); } }, javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, true), javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW ); parameters = m.getParameterTypes (); pickers = new ParametersPicker [parameters.length]; for (int i = 0; i < parameters.length; i++) { pickers[i] = new ParametersPicker (manager, sourceComponent, parameters[i]); pickers[i].addChangeListener (new ChangeListener () { public void stateChanged (ChangeEvent evt) { updateButtons (); } } ); } initComponents (); for (int i = 0; i < parameters.length; i++) { parameterTabs.addTab ( Utilities.getShortClassName (parameters[i]), null, pickers[i], parameters[i].getName () ); } setTitle (FormEditor.getFormBundle ().getString ("CTL_CW_Step3_Title")); // "Connection Wizard - Step 3 of 3" previewLabel.setText (FormEditor.getFormBundle ().getString ("CTL_CW_Preview")); // "Preview" previewLabel.setBorder (new javax.swing.border.CompoundBorder ( new javax.swing.border.TitledBorder ( new javax.swing.border.EtchedBorder (), " " + FormEditor.getFormBundle ().getString ("CTL_CW_GeneratedPreview") +" "), // "Generated Parameters Preview:" new javax.swing.border.EmptyBorder (new java.awt.Insets(5, 5, 5, 5)))); previousButton.setText (FormEditor.getFormBundle ().getString ("CTL_PREVIOUS")); // "< Previous" nextButton.setText (FormEditor.getFormBundle ().getString ("CTL_FINISH")); // "Finish" cancelButton.setText (FormEditor.getFormBundle ().getString ("CTL_CANCEL")); //"Cancel" insidePanel.setBorder (new javax.swing.border.EmptyBorder (new java.awt.Insets(8, 8, 3, 8))); buttonsPanel.setBorder (new javax.swing.border.EmptyBorder (new java.awt.Insets(0, 5, 5, 5))); updateButtons (); pack (); org.openidex.util.Utilities2.centerWindow (this); HelpCtx.setHelpIDString (getRootPane (), ConnectionWizard3.class.getName ()); } public java.awt.Dimension getPreferredSize () { java.awt.Dimension pref = super.getPreferredSize (); return new java.awt.Dimension (Math.max (pref.width, 350), Math.max (pref.height, 500)); } int getReturnStatus () { return returnStatus; } String getParametersText () { StringBuffer buf = new StringBuffer (); for (int i = 0; i < pickers.length; i++) { buf.append (pickers[i].getText ()); if (i != pickers.length - 1) buf.append (", "); // NOI18N } return buf.toString (); } Object[] getParameters () { try { Object values[] = new Object [pickers.length]; for (int i = 0; i < pickers.length; i++) { values[i] = pickers[i].getPropertyValue (); } return values; } catch (IllegalStateException e) { e.printStackTrace(); return null; } } // ---------------------------------------------------------------------------- // private methods private String getPreviewText () { StringBuffer buf = new StringBuffer (); for (int i = 0; i < pickers.length; i++) { buf.append (pickers[i].getPreviewText ()); if (i != pickers.length - 1) buf.append (", "); // NOI18N } return buf.toString (); } private void updateButtons () { boolean flag = true; for (int i = 0; i < pickers.length; i++) flag = flag && pickers[i].isFilled (); nextButton.setEnabled (flag); previewLabel.setText (getPreviewText ()); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the FormEditor. */ private void initComponents () {//GEN-BEGIN:initComponents insidePanel = new javax.swing.JPanel (); parameterTabs = new javax.swing.JTabbedPane (); previewLabel = new javax.swing.JLabel (); buttonsPanel = new javax.swing.JPanel (); leftButtonsPanel = new javax.swing.JPanel (); rightButtonsPanel = new javax.swing.JPanel (); previousButton = new javax.swing.JButton (); nextButton = new javax.swing.JButton (); cancelButton = new javax.swing.JButton (); insidePanel.setLayout (new java.awt.BorderLayout (0, 5)); parameterTabs.addChangeListener (new javax.swing.event.ChangeListener () { public void stateChanged (javax.swing.event.ChangeEvent evt) { updatePreview (evt); } } ); insidePanel.add (parameterTabs, java.awt.BorderLayout.CENTER); previewLabel.setText (FormEditor.getFormBundle ().getString ("CTL_CW_Preview")); insidePanel.add (previewLabel, java.awt.BorderLayout.SOUTH); getContentPane ().add (insidePanel, java.awt.BorderLayout.CENTER); buttonsPanel.setLayout (new java.awt.BorderLayout ()); leftButtonsPanel.setLayout (new java.awt.FlowLayout (0, 5, 5)); buttonsPanel.add (leftButtonsPanel, java.awt.BorderLayout.WEST); rightButtonsPanel.setLayout (new java.awt.FlowLayout (2, 5, 5)); previousButton.setText (FormEditor.getFormBundle ().getString ("CTL_PREVIOUS")); previousButton.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { previousButtonActionPerformed (evt); } } ); rightButtonsPanel.add (previousButton); nextButton.setText (FormEditor.getFormBundle ().getString ("CTL_FINISH")); nextButton.setEnabled (false); nextButton.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { nextButtonActionPerformed (evt); } } ); rightButtonsPanel.add (nextButton); cancelButton.setText (FormEditor.getFormBundle ().getString ("CTL_CANCEL")); cancelButton.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { cancelButtonActionPerformed (evt); } } ); rightButtonsPanel.add (cancelButton); buttonsPanel.add (rightButtonsPanel, java.awt.BorderLayout.EAST); getContentPane ().add (buttonsPanel, java.awt.BorderLayout.SOUTH); }//GEN-END:initComponents private void updatePreview (javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_updatePreview updateButtons (); }//GEN-LAST:event_updatePreview private void nextButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextButtonActionPerformed returnStatus = NEXT; setVisible (false); }//GEN-LAST:event_nextButtonActionPerformed private void previousButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_previousButtonActionPerformed returnStatus = PREVIOUS; setVisible (false); }//GEN-LAST:event_previousButtonActionPerformed private void cancelButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed cancelDialog (); }//GEN-LAST:event_cancelButtonActionPerformed /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:closeDialog cancelDialog (); }//GEN-LAST:closeDialog private void cancelDialog () { returnStatus = CANCEL; setVisible (false); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel insidePanel; private javax.swing.JTabbedPane parameterTabs; private javax.swing.JLabel previewLabel; private javax.swing.JPanel buttonsPanel; private javax.swing.JPanel leftButtonsPanel; private javax.swing.JPanel rightButtonsPanel; private javax.swing.JButton previousButton; private javax.swing.JButton nextButton; private javax.swing.JButton cancelButton; // End of variables declaration//GEN-END:variables private Class[] parameters; private ParametersPicker[] pickers; private FormManager2 manager; private RADComponent sourceComponent; private int returnStatus = CANCEL; } /* * Log * 13 Gandalf 1.12 1/12/00 Pavel Buzek I18N * 12 Gandalf 1.11 1/8/00 Pavel Buzek #2574 * 11 Gandalf 1.10 1/5/00 Ian Formanek NOI18N * 10 Gandalf 1.9 11/27/99 Patrik Knakal * 9 Gandalf 1.8 11/25/99 Ian Formanek Uses Utilities module * 8 Gandalf 1.7 11/5/99 Jesse Glick Context help jumbo * patch. * 7 Gandalf 1.6 10/23/99 Ian Formanek NO SEMANTIC CHANGE - Sun * Microsystems Copyright in File Comment * 6 Gandalf 1.5 7/31/99 Ian Formanek localization pendings * 5 Gandalf 1.4 6/9/99 Ian Formanek ---- Package Change To * org.openide ---- * 4 Gandalf 1.3 6/1/99 Ian Formanek Fixed removed event * handlers * 3 Gandalf 1.2 5/31/99 Ian Formanek Updated to X2 form * format * 2 Gandalf 1.1 5/15/99 Ian Formanek * 1 Gandalf 1.0 5/13/99 Ian Formanek * $ */